package ffhs.lernkartei;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

import com.j256.ormlite.android.apptools.OrmLiteBaseActivity;

import ffhs.lernkartei.persistence.DatabaseHelper;

/**
 * Erlaubt dem Benutzer einen neuen Stapel zu erstellen.
 * 
 * @author schwendh
 */
public class AddStackActivity extends OrmLiteBaseActivity<DatabaseHelper>
{
	/**
	 * Wird aufgerufen wenn die Activity zum ersten mal erstellt wird.
	 * Zeigt das GUI an.
	 */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.add_stack);
	}

	/**
	 * Erstellt einen neuen Stapel Eintrag in der Datenbank sofern der eingegebene
	 * Name nicht leer ist oder ein Eintrag mit demselben Namen nicht bereits existiert.
	 * 
	 * Wird via dem onClick Attribut der Buttons die in add_stack.xml
	 * definiert sind aufgerufen.
	 * 
	 * @param view
	 */
	public void onClick(View view)
	{
		switch (view.getId())
		{
		// Add Button geklickt.
		case R.id.AddStack_button_add:
			EditText stackname = (EditText) findViewById(R.id.AddStack_editText_stackname);

			// Speichert einen neuen Stack Eintrag in der DB wenn das Textfeld nicht leer ist
			// und kein Eintrag mit demselben Namen existiert.
			if (!stackname.getText().toString().equals("")
					&& !getHelper().stackAlreadyExists(
							stackname.getText().toString()))
			{
				getHelper().createStack(stackname.getText().toString());
			}
			break;
		}

		Intent i = new Intent(AddStackActivity.this, ListStacksActivity.class);
		startActivity(i);
	}

	/** User clickt auf back button */
	@Override
	public void onBackPressed()
	{
		super.onBackPressed();
		finish();
		Intent i = new Intent(AddStackActivity.this, ListStacksActivity.class);
		startActivity(i);
	}
}